Method and system for managing related electronic messages

ABSTRACT

A system for managing messages so that messages with redundant contents need not be reviewed by a user. Techniques of the invention monitor electronic messages received by a user and determine whether the received electronic messages are related to pending electronic messages for the user, such as by being part of the same message thread. Messages with redundant contents among the related messages are then identified, and the messages with redundant contents are managed so that the user need not review the contents. The messages with redundant contents can be managed by creating a new message which includes the unique contents of each of the identified messages but at most a single copy of the redundant contents. After the new message is created, the identified messages can then be indicated to be redundant in light of the newly created message in one or more ways, such as by deleting the identified messages or by altering the visual indicators of the identified messages presented to the user. Alternately, the messages with redundant contents can be managed by deleting the redundant contents from the identified messages, or by altering the manner in which the redundant contents are presented to allow for easy identification by the user.

TECHNICAL FIELD

The present invention relates generally to communicating via electronicmessages, and more particularly to identifying and managing relatedelectronic messages.

BACKGROUND OF THE INVENTION

Electronically-communicated messages (“electronic messages” or“electronic communications”) such as email, voicemail, paging messages,and transmitted documents have become increasingly popular and pervasivein recent years. The ability to send an electronic message to multiplerecipients provides for quick and efficient communication, and the useof electronic messages has become common in business settings.

While electronic messages can be specified in a variety of formats, atypical electronic message will include substantive contents to beconveyed (e.g., text and/or images) as well as a preceding header withvarious identifying information about the message. For example, a headerof an electronic email message might include an identification of thesender and of the recipients, as well as a subject for the message.Headers can also include information such as the size of the message, aspecification of the encoding used for the message (e.g., a particularcompression algorithm), a specification of the transmission protocol forwhich the message was created (e.g., TCP/IP), or a unique identifier forthe message.

While a user can create and send a message independent of any othermessages, messages are often part of a message thread. A message threadis a group of messages that are related to each other, such as when onemessage is a response to (e.g., a reply to or a forwarding of) anothermessage. Messages in the same message thread will typically sharevarious common message information, such as related subjects or commonmessage content. For example, a reply email or voicemail will ofteninclude the contents of the original message as well as additionalcontents specific to the reply, and the subject line of a reply orforwarded email will often include the original subject line along witha relation indicator such as “RE:” or “FW:” respectively.

Consider, for example, the following situation in which co-workers senda series of emails that are part of a single message thread back andforth to each other, and each response message contains the contents ofthe message being responded to as well as additional unique content.Worker A first sends message 1 to workers B and C and to supervisor D.Worker B responds to message 1 with response message 2 sent to A and D,and worker C responds to message 1 with a distinct response message 3sent to A and D. Thus, supervisor D has received message 1, message 2which includes the contents of message 1 as well as additional contents,and message 3 which includes the contents of message 1 as well asadditional contents.

While message threads can provide various benefits, receiving messagethread messages can also create various problems. For example, arecipient of multiple message thread messages will often receivemultiple messages that include common content. In the example above,supervisor D received the contents of message 1 in three differentmessages. After the contents of message 1 has been received the firsttime (e.g., from receiving message 1), those contents become redundantfor that message recipient when they are included in the contents ofother received message thread messages (e.g., such as response messages2 and 3).

Current mechanisms for managing pending messages for a user createproblems with respect to message thread messages with redundantcontents. Pending messages for a user include those messages which havebeen received but not yet reviewed, as well as those messages which havebeen reviewed and retained. When a user has received multiple messagesthat are part of a common message thread, current message managementmechanisms store and present each such message to the user. However,when the pending messages for a user include messages with contents thatare redundant in light of the contents of other pending messages,various inefficiencies result. For example, extra computer resources areneeded for the storage and presentation of the redundant contents, andextra time is needed by the user to review each message and to determinewhat contents are new and what contents are redundant.

SUMMARY OF THE INVENTION

The present invention provides a method and system for managing messagesso that messages with redundant contents need not be reviewed by a user.Techniques of the invention monitor electronic messages received by auser and determine whether the received electronic messages are relatedto pending electronic messages for the user, such as by being part ofthe same message thread. Messages with redundant contents among therelated messages are then identified, and the messages with redundantcontents are managed so that the user need not review the contents. Themessages with redundant contents can be managed by creating a newmessage which includes the unique contents of each of the identifiedmessages but at most a single copy of the redundant contents. After thenew message is created, the identified messages used to create the newmessage can then be indicated to be redundant in light of the newlycreated message in one or more ways, such as by deleting the identifiedmessages or by altering the visual indicators of the identified messagespresented to the user. Alternatively, the messages with redundantcontents can be managed by deleting the redundant contents from theidentified messages, or by altering the manner in which the redundantcontents are presented to allow for easy identification by the user.

In one aspect of the invention, multiple electronic messages sent to theuser are identified, at least two of the electronic messages aredetermined to have contents that each include the contents of anotherelectronic message, and a new electronic message is generated containingthe contents of the determined electronic messages in such a manner thatthe new electronic message contains only a single copy of the contentsof the other electronic message.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an embodiment of the MessageManager system of the present invention.

FIGS. 2A-2C illustrate examples of messages sent as part of a messagethread, and FIG. 2D illustrates an example of the sent messages afterthey are managed by an embodiment of the system of the presentinvention.

FIG. 3 is an exemplary flow diagram of an embodiment of the MessageSender routine.

FIG. 4 is an exemplary flow diagram of an embodiment of the MessageReceiver routine.

FIG. 5 is an exemplary flow diagram of an embodiment of the IdentifyRelated Messages For Selected Message—By ID subroutine.

FIG. 6 is an exemplary flow diagram of an embodiment of the IdentifyRelated Messages For Selected Message—By Subject subroutine.

FIG. 7 is an exemplary flow diagram of an embodiment of the IdentifyRelated Messages For Selected Message—By Contents subroutine.

FIG. 8 is an exemplary flow diagram of an embodiment of the MessagePresenter routine.

DETAILED DESCRIPTION OF THE INVENTION

The present invention provides a method and system for identifying andmanaging electronic messages with redundant contents received by a user.In particular, a Message Manager system monitors electronic messagesreceived by a user, determines whether the received electronic messagesare related to pending electronic messages for the user, and identifiesmessages with redundant contents among the related messages. Afteridentifying messages with redundant contents, the Message Manager systemmanages the pending messages so that the user need not review theredundant contents.

FIG. 1 illustrates message recipient computer systems 150, 160, 170, and180 each suitable for executing a Message Manager system 157 on behalfof the users (not shown) of those computer systems. For the sake ofbrevity, only computer system 150 is shown in detail. The computersystem 150 includes a CPU 151, input/output devices 156, and a memory152. The input/output devices 156 include a storage device 158 on whichis stored messages 159 that have been received by the user of computersystem 150 and that are still pending. The input/output devices 156 mayalso include a variety of other devices (not shown). The memory 152stores an executing copy of the Message Manager system 157, as well asan executing copy of a Message Sender component 154 that enables theuser to send messages to other users.

The Message Manager system 157 includes a Message Receiver component 155and a Message Presenter component 153. The Message Receiver component155 monitors messages received by the user of computer system 150,compares received messages to other pending messages 159 to identifymessages with redundant contents, and manages the pending messages sothat the user need not review the redundant contents. In someembodiments, the Message Receiver component manages identified messageswith redundant contents by creating a new message that includes theunique contents of each of the identified messages but at most a singlecopy of the redundant contents. In these embodiments, the MessageReceiver component can also indicate that the identified messages areredundant in light of the newly created message in a variety of ways,such as by deleting the identified messages or by altering the visualindicators of the identified messages presented to the user. In otherembodiments, the identified messages with redundant contents are managedby deleting the redundant contents from the identified messages, or byaltering the manner in which the redundant contents are presented to theuser to allow for easy identification. The activities of the MessageReceiver component 155 in managing messages with redundant contents areillustrated in greater detail below with respect to FIGS. 2A-2D.

The Message Presenter component 153 presents the currently pendingmessages to the user. The Message Presenter component can visuallyidentify messages created or modified by the Message Receiver component(e.g., by highlighting the indicator for such messages when a list ofall pending messages is shown or by visually identifying messagecontents that were modified), and can also visually identify pendingmessages that are redundant in light of the newly created message (e.g.,by dimming the indicator for such messages).

In some embodiments, each recipient computer system sends messagesdirectly to other recipient computer systems and similarly receivesmessages directly from other recipient computer systems. In alternateembodiments, one or more server computer systems can manage thedistribution of electronic messages, such as by receiving a copy of amessage to be distributed and by forwarding copies of the message to thevarious recipients of the message. Server computer system 100illustrated in FIG. 1 is suitable for performing such a distributionrole, and includes a CPU 110, a memory 130, and input/output devices120. The memory 130 stores an executing copy of the Message Distributorcomponent 134, which receives messages from recipient computer systemsthat are sending messages and distributes copies of the messages to theappropriate recipients. The input/output devices 120 of the servercomputer system 100 can include a storage device 126, a networkconnection 122, a computer-readable media drive 123, and a display 124,as well as other devices not shown.

In embodiments in which the Message Distributor component 134distributes messages, each recipient computer system can have anindividual Message Manager system 157 as described above, or the servercomputer system 100 could instead have one or more executing MessageManager systems 157 (not shown). In addition, if the Message Distributorcomponent 134 distributes the messages, the server computer system 100.could store the pending stored messages 159 for each user (not shown)until the Message Presenter component 153 for that user requested thecurrently pending messages.

In embodiments in which one or more Message Manager systems 157 areexecuting at the server computer system 100 in conjunction with theMessage Distributor component 134, the Message Manager systems 157 couldprocess the messages to be sent to each user before the messages areactually distributed. In this manner, the recipient computer systemscould avoid receiving messages with redundant contents. For example, ifa message is received for a recipient by the server computer system 100,with the message having redundant contents in light of the recipient'spending messages, a newly created message could be formed that includedonly the unique contents of the received message. This new message couldbe forwarded to the user rather than the received message so that therecipient does not receive a message with redundant contents.Alternately, if the Message Distributor component 134 instead receivesor stores two or more messages for a recipient having some commoncontents, a new message can be created which includes the uniquecontents of those messages and a single copy of the common contents.This new message could then replace those other messages, and beforwarded to the user at the appropriate time.

Those skilled in the art will appreciate that computer systems 100 and150 are merely illustrative and are not intended to limit the scope ofthe present invention. The computer systems may contain additionalcomponents or may lack some illustrated components, and computer system150 may send messages to or receive messages from any accessible device,including through a wireless network or wired network such as theInternet. Accordingly, the present invention may be practiced with othercomputer system configurations.

The activities of the Message Receiver component 155 in managingmessages with redundant contents can be illustrated by way of examplewith respect to FIGS. 2A-2D. FIGS. 2A-2C illustrate variousrepresentations of a message thread consisting of several messages sentbetween four users. FIG. 2A illustrates the series of actions involvedin creating the message thread, FIG. 2B illustrates the messages in ahierarchical fashion to show how the messages are related to each other,and FIG. 2C illustrates the messages received by each user. FIG. 2Dillustrates the same messages as shown in FIG. 2C after the MessageManager system 157 of the present invention has identified messages withredundant contents, created a new message that includes the uniquecontents of each of the identified message and at most a single copy ofthe redundant contents, and deleted the identified messages.

As shown in FIG. 2A, the message thread begins when User 1 210 createsmessage M1 215 and sends copies to User 2 220, User 3 230, and User 4240. User 1 also keeps a copy of message M1, either by explicitlyidentifying User 1 as a recipient or through an automated feature of themessage sending program. At some point after receiving message M1, User2 creates a reply message M2 225 which User 2 sends to User 1. In theillustrated embodiment, the contents of response messages include allthe contents of the messages to which they are responding, and may alsoinclude message header information (e.g., the sender, recipients,message send time, and message subject) from the messages to which theyare responding. Thus, message M2 includes the contents of message M1.While response message can include only the contents of the message towhich they are responding without adding any additional contents, theresponse messages in this illustrated embodiment do include additionalcontent information unique to the response message.

Similarly to User 2, User 3 creates message M3 235 in response tomessage M1, and sends message M3 to Users 1, 2, 3, and 4. At some pointafter sending message M1, User 1 realizes that User 4 should receiveadditional information related to message M1. Thus, User 1 creates a newmessage M4 245 by forwarding a copy of message M1 to User 4 along withadditional new information. At some point after receiving message M3,User 1 responds by creating response message M6 265 and sending themessage to User 3. Similarly, at some point after receiving message M3,User 2 creates response message M5 255 and sends the message to Users 3and 4. Finally, after receiving both messages M6 and M5, User 3 createsmessage M7 275 as a response to both messages, and sends the message toUser 4. Thus, messages M1-M7 are all part of the same message thread.

FIG. 2B illustrates the messages in the message thread in a hierarchicalfashion to show how the messages are related to each other. Thus, FIG.2B illustrates that message M1 is the head (or “root”) of the messagethread, and that messages M2, M3, and M4 are responses to (or “children”of) message M1. Messages M2, M3, and M4 are referred to as siblingmessages because they are children of the same message, and message M1is referred to as a parent of the messages. As is further illustrated bythe message hierarchy, messages M5 and M6 are responses to message M3,and message M7 is a response to both messages M5 and M6. Message M7 canalso be described as a “descendant” of each of the messages M5, M6, M3,and M1, and each of the messages M5, M6, M3, and M1 can similarly bedescribed as “ancestors” of message M7.

FIG. 2C illustrates the messages in the message thread by showing themessages received by each user. If the users have not received any othermessages and have not deleted any of these messages that they received,then these messages will reflect their currently pending messages. Thus,User 1 first received message M1 followed by messages M2 and M3. InFIGS. 2C and 2D, relationships between messages are shown by informationin parentheses following the message. Thus, since message M1 was not aresponse to any other message, no information is shown in parenthesesfollowing that message. Conversely, since messages M2 and M3 were eachresponses to message M1, message M1 is shown in parentheses followingeach of those messages. As a reminder, in the illustrated embodimenteach response message will include in its contents the contents of themessages to which it is responding. Thus, the contents of a message willinclude the contents of the related messages shown in parenthesesfollowing the message.

In a similar manner to that shown for User 1, User 2 first receivedmessage M1 and then received message M3. User 3 also received messageM1, followed by messages M3, M5, and M6. As is shown by the informationin the parentheses following messages M5 and M6, both messages areresponses to message M3 and thus include the contents of message M3.While neither message M5 or M6 are direct responses to message M1, thecontents of message M1 are included in both messages indirectly sincemessage M1 is an ancestor and the M1 contents are present in thecontents of message M3. This is illustrated graphically by showingmessage M1 separated from message M3 by a colon in the parentheses. User4 similarly received messages M1, M3, M4, M5, and M7.

FIG. 2D illustrates the same messages as shown in FIG. 2C after theMessage Manager system 157 of the present invention has identifiedmessages with redundant contents, created a new message that includesthe unique contents of each of the identified message and at most asingle copy of the redundant contents, and deleted the identifiedmessages. Those skilled in the art will appreciate that a variety ofactions can be taken for identified messages with redundant contentsother than deleting them. For example, if the pending messages arestored in a default message folder (e.g., the Inbox folder), themessages with redundant contents could be moved to a different folder.Alternately, the messages with redundant contents could be left in theInbox folder but could be differentiated from the other pendingmessages, such as by displaying the messages with redundant contents ina distinct manner (e.g., dimmed) or by changing the urgency or priorityof those messages. In yet another embodiment, the Message Manager system157 could recommend one or more actions be taken with messages withredundant contents, but could solicit user input as confirmation of theaction before it is performed or to reverse a default action that wasalready performed.

In order to delete or otherwise indicate the messages with redundantcontents, the Message Manager system 157 first identifies for each userthe pending messages for that user that have redundant contents. In theillustrated embodiment, message contents are determined to be redundantif those contents are included in the contents of another pendingmessage for the user. In some situations, such as when a recipient hasboth a copy of a message and a copy of a response to the message, onepending message will include the complete contents of another pendingmessage. In some embodiments, such messages will be managed by deletingthe message whose contents are completely included in another message.In alternate embodiments, such messages will not be managed, andmessages with redundant contents will be managed only when there is nota complete overlap in the message contents (i.e., when each message hasunique contents as well as common contents).

Thus, as shown in FIG. 2D, messages M2 and M3 for user 1 have beenreplaced with a new message M8φ. In this illustrated embodiment, newmessages created by the Message Manager system will be indicated with an“φ”. Also, for exemplary purposes, messages for user 1 with redundantcontents will be managed only when there is not a complete overlap inthe message contents. Thus, as is shown, message M8φ includes the uniquecontents of both messages M2 and M3, but does not include the message M1contents because message M1 is still pending. If message M1 had not beenpending, message M8φ would also have included a single copy of themessage M1 contents (that are present in the contents of both messagesM2 and M3). As discussed above, in alternate embodiments the MessageManager would have treated message M1 as a message with redundantcontents to be managed, and would thus have deleted message M1 andincluded a single copy of the message M1 contents in message M8φ.

For users 2, 3, and 4, messages with redundant contents are managed evenif there is a complete overlap in the message contents. Thus, for user 2the Message Manager system identifies the contents of message M1 asbeing redundant in light of message M3. Since the Message Manager systemcan remove these redundant contents for user 2 merely by deletingmessage M1, it is not necessary to create a new message.

For both users 3 and 4, all of the pending messages for the user areidentified by the Message Manager system as sharing redundant contents(for both users, all pending messages include the contents of messageM1). Thus, for user 3 a new message M9φ is created that includes thecontents of message M1, and the unique contents from each of messagesM6, M5, and M3. The actual creation of message M9φ can be performed in avariety of ways. For example, one of the pending messages such asmessage M6 can be first selected. All of the contents of that firstmessage can then be added to message M9φ. Each of the other pendingmessages can then be selected in turn. For each selected message, theportion of that message contents which are not already present inmessage M9φ are then added to message M9φ. If message M6 is the firstmessage chosen, then nothing will be added to message M9φ when eithermessage M1 or M3 is selected since message M6 included the contents ofboth messages (messages M1 and M3 are both ancestors of message M6).However, the unique portion of the message M5 contents will be added tomessage M9φ. As is shown in the parentheses following message M9φ inFIG. 2D, message M9φ was constructed in the exemplary manner describedabove.

In a similar manner to that for user 3, the Message Manager creates anew message M10φ for user 4 that includes the unique contents from eachof the messages M7, M5, M4, M3, and M1 . Using an alternate manner ofconstructing message M10φ from that described for user 3, the MessageManager selects each of the pending messages in their order of creation,starting with the earliest message first. Thus, the Message Managerfirst selects message M1, and adds to message M10φ all of the contentsof message M1 which are not yet included in message M10φ (which are allof the message M1 contents). The same procedure is used for each of thepending messages M3, M4, M5, and M7 in turn. The parentheses followingmessage M10φ in FIG. 2D indicate that this order of messages was used.Those skilled in the art will appreciate that various other methods ofconstructing such new messages can be used.

FIG. 3 is an exemplary flow diagram of an embodiment of the MessageSender 154 routine 300. The routine allows a user to create a newmessage and to send the message to one or more recipients. If the newmessage to be sent is not part of an existing message thread (i.e., isnot a response to an existing message), the user specifies a messagesubject and the message contents for the message. In addition, a uniquemessage ID is assigned to the message before it is sent. If the newmessage to be sent is instead a response to an existing message, thecontents of the existing message are included in the new message, thesubject for the new message is generated based on the subject of theexisting message, and a unique message ID for the new message isgenerated based on the message ID for the existing message.

The Message Sender routine begins at step 305 where a new empty messageis created. The routine continues to step 310 to determine if the newmessage will be a response to an existing message. If not, the routinecontinues to step 315 to generate a unique message ID, and assigns thenew message ID to the new message. The routine then continues to step320 to receive the message subject from the user, and to add the messagesubject to the message.

If it was instead determined in step 310 that the new message is to be aresponse to an existing message, the routine instead continues to step325 to generate a unique message ID based on the message ID for theexisting message being responded to. The generated message ID is thenadded to the new message. Those skilled in the art will appreciate thata wide variety of relationships between IDs can be used to indicateresponse relationships. For example, referring to the messages shown inFIG. 2B, message M1 may have received the unique ID 1234. When messagesM2, M3, and M4 are created in response to message M1, the unique IDsassigned to each of the response messages can show that relationship tomessage M1 (e.g., with the IDs 1234-01, 1234-02, and 1234-03respectively). Similarly, the IDs for messages M5 and M6 can show theirrelationship to messages M3 and M1 (e.g., with the IDs 1234-02-01 and1234-02-02 respectively). A related ID can be generated based on anexisting ID in any manner that is later discernible.

After step 325, the routine- continues to step 330 to generate a newmessage subject based on the message subject for the existing message,and adds the new message subject to the new message. Those skilled inthe art will appreciate that a wide variety of relationships betweenmessage subjects can be used to indicate response relationships. Forexample, referring to the messages shown in FIG. 2B, message M1 may havethe subject “XYZ project.” When messages M2, M3, and M4 are created inresponse to message M1, the subjects assigned to each of the responsemessages may show that relationship to message M1 (e.g., with messagesubjects “RE: XYZ project-01,“” RE: XYZ project-02” and “RE: XYZproject-03” respectively, or with message subject “RE: XYZ project” foreach message). Similarly, the subject for message MS can show itsrelationship to messages M3 and M1 (e.g., with message subject “RE: RE:XYZ project-02-01”). A related message subject can be generated based onan existing message subject in any manner that is later discernible.

After step 330, the routine then continues to step 335 to add themessage contents of the existing message to the new message. In theillustrated embodiment, the message contents of the message beingresponded to are automatically added to the contents of the responsemessage. In alternate embodiments, the user may indicate whether to addthe message contents of the message being responded to, or the newmessage may merely contain a link or a pointer to the message beingresponded to.

After steps 335 or 320, the routine continues to step 340 to receivefrom the user the message contents for the new message, and adds the newcontents to the new message. Those skilled in the art will appreciatethat the message contents can include a wide variety of informationtypes such as text, graphics, audio or video clips, attached documents,etc. Alternately, no new message contents may be added to a new message.The routine next continues to step 345 to receive from the user adesignation of the message recipients. The routine then continues tostep 350 and sends the new message to the designated recipients. In step355, the routine determines if there are more messages to send. If so,the routine returns to step 305, and if not the routine ends at step395.

Those skilled in the art will appreciate that new messages can becreated in a variety of ways. For example, new messages may not be eachassigned a unique ID. Alternately, a response message may have an ID orsubject that is independent of the ID and subject of the message beingresponded to, and response messages may include only some or none of thecontents of the message being responded to. In addition, the contentsand recipients of the new message can be generated automatically ratherthan being received from the user. For example, a reply message mayautomatically select the sender of the message being responded to as therecipient of the new message.

FIG. 4 is an exemplary flow diagram of an embodiment of the MessageReceiver 155 routine 400. The routine receives messages sent to a user,and before the messages are made available to the user the routinedetermines if any of the pending or new messages have redundant contentsin light of other pending or new messages. If any of the pending or newmessages are identified as having such redundant contents, the routinecreates a new message that includes the unique contents of theidentified messages as well as at most one copy of the redundantcontents, and then deletes the identified messages.

The routine begins at step 405 where it checks if any new messages havebeen received. If so, the routine continues to step 410 to retrieve thenew messages as well as any currently pending messages. The routine thencontinues to step 415 to select the next retrieved message, beginningwith the first message. In step 420, the routine identifies any messagesamong the retrieved messages that have redundant contents in light ofthe selected message by executing subroutine 420. After identifying anymessages with redundant contents, the routine continues to step 425 todetermine if any such messages were identified.

If any related messages were identified that have redundant contents,the routine continues to step 435 to create a new empty message. Thoseskilled in the art will appreciate that the message can be created in amanner similar to that described for a response, message with respect toFIG. 3, thus automatically generating a message subject and message IDthat is related to the identified messages. Alternately, the new messagecould have a message subject or other identifying indicia to show thatthe message was automatically generated (e.g., appending an ‘φ’ to themessage name). The routine next continues to step 440 where, for eachidentified related message, the contents of that message not alreadypresent in the new message are added to the new message. The routinethen continues to step 445 to delete the identified related messages(including the selected message), and to add the newly created messageto the list of new retrieved messages.

After step 445, or if was instead determined in step 425 that there werenot any messages related to the selected message, the routine continuesto step 450 to determine if there are more new retrieved or currentlypending messages to select. If so, the routine returns to step 415, andif not the routine continues to step 455 to designate the remainingmessages as the currently pending messages. This can be done in avariety of ways, such as by storing the remaining messages locally or bynotifying another component to store only the new group of pendingmessages. Alternately, if the pending messages are stored or presentedin a default location (e.g., the Inbox Folder), the non-pending messagescould be removed from this default location. After step 455, the routinecontinues to step 460 to determine if there are more new messages toreceive. If so, the routine returns to step 410, and if not the routineends at step 495.

Those skilled in the art will appreciate that messages with redundantcontents can be managed in a variety of ways. For example, such messagescould be indicated as being redundant in light of the newly createdmessage in ways other than being deleted. In addition, messages could bepresented to the user when first received, and only processed forredundant contents on a periodic basis or when directed by the user.Moreover, user confirmation could be required before deleting anymessage identified as having redundant contents, or before deleting acurrently pending message that the user may have already reviewed.

FIGS. 5, 6, and 7 illustrate three alternate embodiments of the IdentifyRelated Messages For Selected Message subroutine 420. FIG. 5 describesan embodiment of subroutine 420 in which message IDs are used toidentify related messages with redundant contents. FIG. 6 describes anembodiment of subroutine 420 in which message subjects and message sendtimes are used to identify related messages with redundant contents.FIG. 7 describes an embodiment of subroutine 420 in which messagecontents are used to identify related messages with redundant contents.Those skilled in the art will appreciate that other methods can also beused to identify such messages.

FIG. 5 is an exemplary flow diagram of an alternate embodiment ofsubroutine 420 in which message IDs are used to identify relatedmessages with redundant contents. In this embodiment, all of themessages in a message thread have related IDs, and the relationshipsamong IDs indicate which messages are responses to which other messages.Exemplary related message IDs for the messages shown in FIG. 2B arediscussed above with respect to FIG. 3. Those skilled in the art willappreciate that a wide variety of relationships between IDs can be usedto indicate response relationships.

The subroutine for FIG. 5 begins at step 505 where the ID for theselected message is retrieved. The subroutine continues to step 510where the retrieved ID is compared to the IDs of the other currentretrieved messages in order to identify related messages. Thiscomparison can identify not only messages which are responses to theselected message, but also sibling or other messages that share a commonancestor with the selected message. Since response messages in theillustrated embodiment include the contents of the messages beingresponded to, any sibling or other messages that share a common withsubject “RE: XYZ project-02”. In this manner, message M1 can beidentified as being related to message M5 even if message M3 is notcurrently pending. In a similar manner, sibling or other messages thatshare a common ancestor with the selected message can also be identifiedbased on their subjects.

Those skilled in the art will appreciate that in some embodiments, eachmessage will have a unique message subject that allows the relationshipsfor that message to be precisely defined. For example, if messages M2,M3 and M4 all have unique message subjects (e.g., “RE: XYZ project-01,”“RE: XYZ project-02” and “RE: XYZ project-03” respectively), thenmessage M5 (e.g., with message subject “RE: RE: XYZ project-02-01”) maybe identifiable as being related to message M3 rather than M2 or M4.Conversely, if messages M2, M3 and M4 all share the same message subject“RE: XYZ project,” then a message subject for message M5 such as “RE:RE: XYZ project” would not directly indicate which of the messages M2,M3 or M4 that message MS had responded to. Nonetheless, even if messagesM2, M3 and M4 all share the same message subject “RE: XYZ project,” itis still possible to determine that the messages share a commonancestor.

In this illustrated embodiment of FIG. 6, response messages have thesame message subject as the message to which they are responding, andthus message subjects are not guaranteed to be unique. After step 610,the subroutine continues to step 615 to designate the selected messageand any other messages with the same message subject as being related.This group will include any current retrieved messages in the responsechain before or after the selected message (e.g., message M1 to M3 to M5to M7), as well as any other messages that share a common ancestor(e.g., message M2 and M4) with the selected message.

The subroutine then continues to step 620 to organize the relatedmessages in order based on the time that the messages were sent. In thismanner, the newly created message will include the unique contents ofeach of the related messages in the order that the contents weregenerated. This will assist a reviewer of the new message to more easilyappreciate how the series of messages in the message thread developedover time. After step 620, the subroutine continues to step 695 andreturns. Those skilled in the art will appreciate that subjects alonecan be used to identify messages with redundant contents without usingmessage send times, and that message send times can be used inconjunction with other message relation identifiers such as IDs andmessage contents in order to ensure that the newly created message hasan appropriate series of contents that reflects how the related messageswere created.

FIG. 7 is an exemplary flow diagram of an alternate embodiment ofsubroutine 420 in which message contents are used to identify relatedmessages with redundant contents. In this embodiment, all of themessages in a message thread have related contents because each responsemessage includes the contents of the message being responded to. Thoseskilled in the art will appreciate that in other embodiments, none oronly some of the contents of the message being responded to may beincluded in response messages.

The subroutine for FIG. 7 begins at step 705 where the contents for theselected message are retrieved. The subroutine continues to step 710where the retrieved contents are compared to the contents of the othercurrently pending messages. This comparison identifies messages whosecontents are included in the selected message and messages which includethe contents of the selected message. In addition, sibling and othermessages with a common ancestor will be identified as sharing at least aportion of their contents with a portion of the selected message'scontents. The subroutine then continues to step 715 to designate theidentified messages as related. After step 715, the subroutine returnsat step 795.

FIG. 8 is an exemplary flow diagram of an embodiment of the MessagePresenter 153 routine 800. The Message Presenter routine presents thecurrently pending message to the user to allow the user to review orrespond to the messages. The routine begins at step 805 where thecurrently pending messages are retrieved. The routine then continues tostep 810 where the currently pending messages are presented to the user.In the illustrated embodiment, messages with redundant contents havebeen eliminated from the group of pending messages by deleting themessages, and any newly created messages will be included in the pendingmessages. In other embodiments, however, messages with redundantcontents can be identified in other manners, such as by having theMessage Presenter routine display those messages or indicators for thosemessages in an altered fashion (e.g., dimmed) or by displaying thosemessages in a folder other than the default folder.

After step 810, the routine continues to 815 to determine if any usercommands have been received. If so, the routine continues to step 820 toreceive the user command, and then to step 825 to respond to the usercommand. The routine then continues to step 830 to determine if thereare more user commands. If so, the routine returns to step 820. If it isinstead determined in step 830 that there are no more user commands orin step 815 that there were not any user commands, the routine continuesto step 895 and ends.

From the foregoing it will be appreciated that, although specificembodiments of the invention have been described herein for purposes ofillustration, various modifications may be made without deviating fromthe spirit and scope of the invention. Accordingly, the invention is notlimited except as by the appended claims.

What is claimed is:
 1. A computer-implemented method for automaticallygenerating an electronic mail message from electronic mail messages thatare part of a mail message thread, the method comprising: receiving afirst electronic mail message with first contents, the first electronicmail message sent to a user; receiving a second electronic mail messagewith second contents, the second electronic mail message sent to theuser, the second electronic mail message part of a mail message threadincluding a plurality of electronic mail messages; in response toreceiving the second electronic mail message, determining whether thefirst electronic mail message is part of the mail message thread thatincludes the second electronic mail message; when the first electronicmail message is determined to be part of the mail message thread thatincludes the second electronic mail message, determining whether thesecond contents and the first contents each contain contents of a thirdelectronic mail message; and when the second contents and the firstcontents are determined to each contain the contents of the thirdelectronic mail message, automatically removing redundant mail messagecontents by generating a new electronic mail message having contentsthat include portions of the first contents other than the contents ofthe third electronic mail message, portions of the second contents otherthan the contents of the third electronic mail message, and a singlecopy of the contents of the third electronic mail message; and deletingthe first and second electronic mail messages.
 2. The method of claim 1wherein the first electronic mail message has a first subject separatefrom the first contents, wherein the second electronic mail message hasa second subject separate from the second contents, and wherein thefirst electronic mail message is determined to be part of the mailmessage thread that includes the second electronic mail message when thesecond subject includes the first subject.
 3. The method of claim 1wherein the generating of the new electronic mail message is performedonly if the first and second contents are distinct.
 4. The method ofclaim 1 wherein the first electronic mail message has a first identifierseparate from the first contents, wherein the second electronic mailmessage has a second identifier separate from the second contents, andwherein the first electronic mail message is determined to be part ofthe mail message thread that includes the second electronic mail messagewhen the second identifier is based on the first identifier.
 5. Themethod of claim 1 wherein the generating of the electronic mail messageincludes: creating a new electronic mail message; copying all of thefirst contents into the created electronic mail message; and copyingonly the portions of the second contents that are distinct from thefirst contents into the created electronic mail message.
 6. The methodof claim 5 wherein the user is not notified of the receiving of thefirst and second electronic mail messages until after either the firstelectronic mail message is determined to not be part of the mail messagethread that includes the second electronic mail message or the secondcontents and the first contents are determined to not each contain thecontents of the third electronic mail message.
 7. A computer-implementedmethod for managing electronic messages sent to a user, the methodcomprising: receiving an indication of a plurality of electronicmessages sent to the user; determining at least two of the plurality ofelectronic messages whose contents each include the contents of anotherelectronic message; and generating an electronic message containing thecontents of the determined electronic messages in such a manner that thegenerated electronic message contains a single copy of the contents ofthe another electronic message.
 8. The method of claim 7 includingdeleting the determined electronic messages after the generating of theelectronic message.
 9. The method of claim 7 wherein a default visualappearance is used when displaying to the user indicators for theplurality of electronic messages, and including changing the visualappearance of the indicators for the determined electronic messagesafter the generating of the electronic message.
 10. The method of claim7 wherein the plurality of electronic messages are stored in onelocation, and including: storing the generated electronic message in theone location; and moving the determined electronic messages to anotherlocation.
 11. The method of claim 7 wherein each of the plurality ofelectronic messages has a subject, and wherein the determining of the atleast two of the plurality of electronic messages includes determiningthat the subjects of the determined electronic messages are related. 12.The method of claim 7 wherein the determined electronic messages and theanother electronic message each have a subject, and wherein thedetermining of the at least two of the plurality of electronic messagesincludes determining that the subjects of the determined electronicmessages are related to the subject of the another electronic message.13. The method of claim 7 wherein each of the plurality of electronicmessages has a unique identifier, and wherein the determining of the atleast two of the plurality of electronic messages includes determiningthat the identifiers of the determined electronic messages are related.14. The method of claim 7 wherein the determining of the at least two ofthe plurality of electronic messages includes comparing the contents ofone of the determined electronic messages to other determined electronicmessages.
 15. The method of claim 7 wherein each of the plurality ofelectronic messages has header information separate from the contents ofthe message, and wherein the header information of the anotherelectronic message is not included in the contents of the determinedelectronic messages.
 16. The method of claim 7 wherein the generating ofthe electronic message includes: creating an electronic mail message;for a first of the determined electronic messages, copying into thecreated electronic mail message all of the contents of the firstdetermined electronic message; and for each of the other determinedelectronic messages, copying into the created electronic mail messagethe portions of the contents of the determined electronic message thatnot yet present in the created electronic mail message.
 17. The methodof claim 16 wherein each of the determined electronic messages has anassociated time when the electronic message was sent, and wherein thegenerating of the electronic message includes selecting based on theassociated times an order for the determined electronic messages suchthat the copying of the contents of the determined electronic messagesis performed based on the selected order.
 18. A computer-implementedmethod for managing electronic messages sent to a user, the user havinga plurality of received pending electronic messages, each receivedelectronic message comprising a message header and message information,the method comprising: receiving an indication of an electronic messagesent to the user, the message information for the indicated electronicmessage containing the message information of another electronicmessage; determining whether the message information for at least one ofthe pending electronic messages contains the message information for theanother electronic message; and when it is determined that the messageinformation for at least one of the pending electronic messages containsthe message information for the another electronic message,automatically creating a new electronic message containing the messageinformation of the indicated electronic message and of the pendingelectronic messages that contain the message information for the anotherelectronic message, the creating in such a manner that the createdelectronic message contains only a single copy of the messageinformation of the another electronic message; and indicating that thepending electronic messages that contain the message information for theanother electronic message are no longer pending.
 19. The method ofclaim 18 wherein the indicating that the pending electronic messagesthat contain the message information for the another electronic messageare no longer pending includes deleting those pending electronicmessages.
 20. The method of claim 18 wherein the message header for eachof the plurality of electronic messages includes a message subject, andwherein the determining of whether the message information for at leastone of the pending electronic messages contains the message informationfor the another electronic message includes comparing the messagesubject of the indicated electronic message to the message subjects ofthe pending electronic messages.
 21. The method of claim 18 wherein thedetermining of whether the message information for at least one of thepending electronic messages contains the message information for theanother electronic message includes comparing the message information ofthe indicated electronic message to the message information of thepending electronic messages.
 22. The method of claim 18 wherein the stepof indicating that the pending electronic messages that contain themessage information for the another electronic message are no longerpending is performed only if those pending electronic messages have notbeen reviewed by the user.
 23. The method of claim 18 wherein the stepof indicating that the pending electronic messages that contain themessage information for the another electronic message are no longerpending is not performed if the user has previously indicated that thosepending electronic messages remain pending.
 24. The method of claim 18wherein the step of indicating that the pending electronic messages thatcontain the message information for the another electronic message areno longer pending comprises: querying the user as to whether thosepending electronic messages should be pending; and when the user directsthat those pending electronic messages should not be pending, fulfillingthe directions of the user.
 25. A computer-implemented method formanaging electronic messages each having message contents, the methodcomprising: receiving an indication of a first electronic message sentby a user, the contents of the first electronic message including thecontents of a second electronic message; and when a copy of the firstelectronic message is retained for the user, determining whethercontents of a third electronic message retained for the user includesthe contents of the second electronic message; and when the contents ofthe third electronic message includes the contents of the secondelectronic message, automatically creating a fourth electronic messagecontaining the contents of the first and third electronic messages, thecreating in such a manner that the fourth electronic message containsonly a single copy of the contents of the second electronic message. 26.The method of claim 25 including when the fourth electronic message isautomatically created, deleting the first and third electronic messages.27. The method of claim 25 wherein a default visual appearance is usedwhen displaying indicators for electronic messages to the user, andincluding when the fourth electronic message is automatically created,changing the visual appearance of the indicators for the first and thirdelectronic messages.
 28. The method of claim 25 wherein electronicmessages received or retained by the user are initially stored in onelocation, and including when the fourth electronic message isautomatically created, moving the first and third electronic messages toanother location.
 29. The method of claim 25 wherein the determining ofwhether contents of the third electronic message includes the contentsof the second electronic message includes comparing subjects of thefirst and third electronic messages.
 30. The method of claim 25 whereinthe determining of whether contents of the third electronic messageincludes the contents of the second electronic message includescomparing the contents of the first electronic message to the contentsof the third electronic message.
 31. A computer-readable medium whosecontents cause a computer system to manage electronic messages sent to auser by: receiving an indication of a plurality of electronic messagessent to the user; determining at least two of the plurality ofelectronic messages whose contents each include the contents of anotherelectronic message; and generating an electronic message containing thecontents of the determined electronic messages, the generating in such amanner that the generated electronic message contains a single copy ofthe contents of the another electronic message.
 32. Thecomputer-readable medium of claim 31 wherein the contents of thecomputer-readable medium further cause the computer system to delete thedetermined electronic messages after the generating of the electronicmessage.
 33. The computer-readable medium of claim 31 wherein theplurality of electronic messages are stored in one location, and whereinthe contents of the computer-readable medium further cause the computersystem to store the generated electronic message in the one location andto move the determined electronic messages to another location.
 34. Thecomputer-readable medium of claim 31 wherein each of the plurality ofelectronic messages has a subject, and wherein the determining of the atleast two of the plurality of electronic messages includes determiningthat the subjects of the determined electronic messages are related. 35.The computer-readable medium of claim 31 wherein the determining of theat least two of the plurality of electronic messages includes comparingthe contents of one of the determined electronic messages to otherdetermined electronic messages.
 36. The computer-readable medium ofclaim 31 wherein the generating of the electronic message includes:creating an electronic mail message; for a first of the determinedelectronic messages, copying into the created electronic mail messageall of the contents of the first determined electronic message; and foreach of the other determined electronic messages, copying into thecreated electronic mail message the portions of the contents of thedetermined electronic message that not yet present in the createdelectronic mail message.
 37. The computer-readable medium of claim 36wherein each of the determined electronic messages has an associatedtime when the electronic message was sent, and wherein the generating ofthe electronic message includes selecting based on the associated timesan order for the determined electronic messages such that the copying ofthe contents of the determined electronic messages is performed based onthe selected order.
 38. The computer-readable medium of claim 31 whereinthe determining of the at least two of the plurality of electronicmessages includes determining that the at least two electronic messagesare part of a shared message thread.
 39. A computer system for managingelectronic messages sent to a user, the computer system comprising: anetwork connection that allows communication with other computersystems; and a message receiver that receives via the network connectionan indication of a plurality of electronic messages sent to the user,that determines at least two of the plurality of electronic messageswhose contents each include the contents of another electronic message,and that generates an electronic message containing the contents of thedetermined electronic messages in such a manner that message contains asingle copy of the contents of the another electronic message.
 40. Thecomputer system of claim 39 further comprising a message sender thatcomposes a response message to an indicated message in such a mannerthat a relationship is indicated between the response message and theindicated message.
 41. The computer system of claim 40 wherein therelationship between the response message and the indicated message isindicated by including the contents of the indicated message in thecontents of the response message.
 42. The computer system of claim 39wherein the message receiver further deletes the determined electronicmessages after the generating of the electronic message.
 43. Thecomputer system of claim 39 further comprising a storage device with adefault location for storing the plurality of electronic messages, andwherein the message receiver further moves the determined electronicmessages from the default location to another location after thegenerating of the electronic message.
 44. The computer system of claim39 further comprising a message presenter that presents to the user onlyelectronic messages that do not include the contents of anotherelectronic message such that the contents of the another electronicmessage are also included in other electronic messages to be presentedto the user.
 45. The computer system of claim 39 wherein each of theplurality of electronic messages has a subject, and wherein thedetermining of the at least two of the plurality of electronic messagesincludes determining that the subjects of the determined electronicmessages are related.
 46. The computer system of claim 39 wherein thedetermining of the at least two of the plurality of electronic messagesincludes comparing the contents of one of the determined electronicmessages to other determined electronic messages.
 47. The computersystem of claim 39 wherein the message receiver generates the electronicmessage by: creating an electronic mail message; for a first of thedetermined electronic messages, copying into the created electronic mailmessage all of the contents of the first determined electronic message;and for each of the other determined electronic messages, copying intothe created electronic mail message the portions of the contents of thedetermined electronic message that not yet present in the createdelectronic mail message.
 48. The computer system of claim 39 wherein thedetermining of the at least two of the plurality of electronic messagesincludes determining that the at least two electronic messages are partof a shared, message thread.
 49. A computer-readable medium containingan automatically generated electronic message based on at least twoother electronic messages whose contents each include the contents ofanother electronic message, the automatically generated electronicmessage containing a single copy of the contents of the anotherelectronic message and containing portions of the contents of each ofthe at least two other electronic messages, the contained portions ofthe contents of each of the at least two other electronic messages beingdistinct from the contents of the another electronic message, so thatthe automatically generated electronic message can be presented to auser with the contents of the at least two other electronic messageswithout the user being presented with redundant copies of the contentsof the another electronic message.